package com.wind.taobao.api.trade.product.rest
{
	import com.wind.taobao.api.IPrivateAPI;
	import com.wind.taobao.core.exception.InvalidRequestParametersException;
	import com.wind.taobao.core.util.TaobaoUtils;
	import com.wind.taobao.core.webservice.TaobaoRequest;

	import flash.net.FileReference;

	/**
	 * taobao.product.add Request
	 * @author fxy
	 *
	 */
	public class ProductAddRequest extends TaobaoRequest implements IPrivateAPI
	{
		public override function get method():String
		{
			return "taobao.product.add"
		}
		/**
		 * Y 	 商品类目ID.调用taobao.itemcats.get.v2获取;注意:必须是叶子类目 id.
		 */
		[Bindable]
		public var cid:String;
		/**
		 * N 	外部产品ID
		 */
		[Bindable]
		public var outer_id:String;
		/**
		 * 关键属性 结构:pid:vid;pid:vid.调用taobao.itemprops.get.v2获取pid,调用taobao.itempropvalues.get获取vid;如果碰到用户自定义属性,请用customer_props.
		 */
		[Bindable]
		public var props:String;
		/**
		 * N 	非关键属性结构:pid:vid;pid:vid.非关键属性不包含关键属性、销售属性、用户自定义属性、商品属性;调用taobao.itemprops.get.v2获取pid,调用taobao.itempropvalues.get获取vid.
		 */
		[Bindable]
		public var binds:String;
		/**
		 * N 	销售属性结构:pid:vid;pid:vid.调用taobao.itemprops.get.v2获取is_sale_prop＝true的pid,调用taobao.itempropvalues.get获取vid.
		 */
		[Bindable]
		public var sale_props:String;
		/**
		 * 用户自定义属性,结构：pid1:value1;pid2:value2 例如：“20000:优衣库”，表示“品牌:优衣库”
		 */
		[Bindable]
		public var customer_props:String;
		/**
		 * Y 	产品名称,最大60个字节.
		 */
		[Bindable]
		public var name:String;
		/**
		 * Y 	产品市场价.精确到2位小数;单位为元.如：200.07
		 */
		[Bindable]
		public var price:String;
		/**
		 * N 	产品描述.最大25000个字节
		 */
		[Bindable]
		public var desc:String;
		/**
		 * Y 	产品主图片.最大500K,目前仅支持GIF,JPG.
		 */
		[Bindable]
		public var image:FileReference;

		public override function validate():void
		{
			if (!TaobaoUtils.hasAllValue([cid, name, price, image]))
			{
				throw new InvalidRequestParametersException("请求参数[cid,name,price,image]不能为空");
			}
			if (!TaobaoUtils.hasAnyValue([props, customer_props]))
			{
				throw new InvalidRequestParametersException("请求参数[product_id]不能为空或者[cid][props]两个不能为空");
			}
		}
	}
}